<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>aiengine: xaielib.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">aiengine
   </div>
   <div id="projectbrief">Vitis Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Overview</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="globals.html"><span>APIs</span></a></li>
      <li><a href="files.html"><span>File&#160;List</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('xaielib_8h.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">xaielib.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<div class="textblock"><p>This file contains the generic definitions for the AIE drivers. </p>
<pre>
MODIFICATION HISTORY:</pre><pre>Ver   Who     Date     Changes
</p>
<hr/>
<p>
1.0  Naresh  03/27/2018  Initial creation
1.1  Naresh  05/23/2018  Added support for bare-metal BSP
1.2  Naresh  06/18/2018  Updated code as per standalone driver framework
1.3  Naresh  07/11/2018  Updated copyright info
1.4  Hyun    10/10/2018  Added the mask write API
1.5  Hyun    11/14/2018  Move platform dependent code to <a class="el" href="xaielib_8c.html" title="This file contains the low level layer interface of the AIE driver with the definitions for the memor...">xaielib.c</a>
1.6  Nishad  12/05/2018  Renamed ME attributes to AIE
1.7  Hyun    01/08/2019  Add <a class="el" href="xaielib_8c.html#ae24a68d49a75f90bb1d7420bf61cfd3d" title="This is the IO function to poll until the value at the address to be given masked value...">XAieLib_MaskPoll()</a>
1.8  Tejus   10/14/2019  Enable assertion for linux and simulation
1.9  Wendy   02/25/2020  Add Logging API
</pre> </div><table class="memberdecls">
<tr class="memitem:a820be016043929d0c727ca1ebea73733"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#a820be016043929d0c727ca1ebea73733">XAieLib_Read32</a> (u64 Addr)</td></tr>
<tr class="memdesc:a820be016043929d0c727ca1ebea73733"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the memory IO function to read 32bit data from the specified address.  <a href="#a820be016043929d0c727ca1ebea73733">More...</a><br/></td></tr>
<tr class="separator:a820be016043929d0c727ca1ebea73733"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c4151c74c8c8c287d2f2d7e8b2c3308"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#a6c4151c74c8c8c287d2f2d7e8b2c3308">XAieLib_Read128</a> (u64 Addr, u32 *Data)</td></tr>
<tr class="memdesc:a6c4151c74c8c8c287d2f2d7e8b2c3308"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the memory IO function to read 128b data from the specified address.  <a href="#a6c4151c74c8c8c287d2f2d7e8b2c3308">More...</a><br/></td></tr>
<tr class="separator:a6c4151c74c8c8c287d2f2d7e8b2c3308"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeab7b9a775763561f4b5ffe900b448ce"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#aeab7b9a775763561f4b5ffe900b448ce">XAieLib_Write32</a> (u64 Addr, u32 Data)</td></tr>
<tr class="memdesc:aeab7b9a775763561f4b5ffe900b448ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the memory IO function to write 32bit data to the specified address.  <a href="#aeab7b9a775763561f4b5ffe900b448ce">More...</a><br/></td></tr>
<tr class="separator:aeab7b9a775763561f4b5ffe900b448ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea8f2e8219b0446aed5136335954632f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#aea8f2e8219b0446aed5136335954632f">XAieLib_MaskWrite32</a> (u64 Addr, u32 Mask, u32 Data)</td></tr>
<tr class="memdesc:aea8f2e8219b0446aed5136335954632f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the memory IO function to write a masked 32bit data to the specified address.  <a href="#aea8f2e8219b0446aed5136335954632f">More...</a><br/></td></tr>
<tr class="separator:aea8f2e8219b0446aed5136335954632f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c957fb3e99baea854f371426fbab9d6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#a9c957fb3e99baea854f371426fbab9d6">XAieLib_Write128</a> (u64 Addr, u32 *Data)</td></tr>
<tr class="memdesc:a9c957fb3e99baea854f371426fbab9d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the memory IO function to write 128bit data to the specified address.  <a href="#a9c957fb3e99baea854f371426fbab9d6">More...</a><br/></td></tr>
<tr class="separator:a9c957fb3e99baea854f371426fbab9d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0785309bf71fa965f2f98a8c0aeb9503"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#a0785309bf71fa965f2f98a8c0aeb9503">XAieLib_WriteCmd</a> (u8 Command, u8 ColId, u8 RowId, u32 CmdWd0, u32 CmdWd1, u8 *CmdStr)</td></tr>
<tr class="memdesc:a0785309bf71fa965f2f98a8c0aeb9503"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the memory IO function to write 128bit data to the specified address.  <a href="#a0785309bf71fa965f2f98a8c0aeb9503">More...</a><br/></td></tr>
<tr class="separator:a0785309bf71fa965f2f98a8c0aeb9503"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae24a68d49a75f90bb1d7420bf61cfd3d"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#ae24a68d49a75f90bb1d7420bf61cfd3d">XAieLib_MaskPoll</a> (u64 Addr, u32 Mask, u32 Value, u32 TimeOutUs)</td></tr>
<tr class="memdesc:ae24a68d49a75f90bb1d7420bf61cfd3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the IO function to poll until the value at the address to be given masked value.  <a href="#ae24a68d49a75f90bb1d7420bf61cfd3d">More...</a><br/></td></tr>
<tr class="separator:ae24a68d49a75f90bb1d7420bf61cfd3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a479677997332b0bffab48ac25ccf9159"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#a479677997332b0bffab48ac25ccf9159">XAieLib_NPIRead32</a> (u64 Addr)</td></tr>
<tr class="memdesc:a479677997332b0bffab48ac25ccf9159"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the NPI IO function to read 32bit data from the specified address.  <a href="#a479677997332b0bffab48ac25ccf9159">More...</a><br/></td></tr>
<tr class="separator:a479677997332b0bffab48ac25ccf9159"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2fd1a6b12446eb8fd0b3172ecc8d5a1f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#a2fd1a6b12446eb8fd0b3172ecc8d5a1f">XAieLib_NPIWrite32</a> (u64 Addr, u32 Data)</td></tr>
<tr class="memdesc:a2fd1a6b12446eb8fd0b3172ecc8d5a1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the NPI IO function to write 32bit data to the specified address.  <a href="#a2fd1a6b12446eb8fd0b3172ecc8d5a1f">More...</a><br/></td></tr>
<tr class="separator:a2fd1a6b12446eb8fd0b3172ecc8d5a1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae034043fa2450cb0c690a41fe66f6ca9"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#ae034043fa2450cb0c690a41fe66f6ca9">XAieLib_NPIMaskPoll</a> (u64 Addr, u32 Mask, u32 Value, u32 TimeOutUs)</td></tr>
<tr class="memdesc:ae034043fa2450cb0c690a41fe66f6ca9"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the NPI IO function to poll until the value at the address to be given masked value.  <a href="#ae034043fa2450cb0c690a41fe66f6ca9">More...</a><br/></td></tr>
<tr class="separator:ae034043fa2450cb0c690a41fe66f6ca9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a059d049bbe1f789cb75612dbcba8ba57"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#a059d049bbe1f789cb75612dbcba8ba57">XAieLib_AssertNonvoid</a> (u8 Cond, const char *func, const u32 line)</td></tr>
<tr class="memdesc:a059d049bbe1f789cb75612dbcba8ba57"><td class="mdescLeft">&#160;</td><td class="mdescRight">This asserts if the condition doesn't meet.  <a href="#a059d049bbe1f789cb75612dbcba8ba57">More...</a><br/></td></tr>
<tr class="separator:a059d049bbe1f789cb75612dbcba8ba57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50d51ee4b80ebc9a9934c5e0de1a34e0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#a50d51ee4b80ebc9a9934c5e0de1a34e0">XAieLib_AssertVoid</a> (u8 Cond, const char *func, const u32 line)</td></tr>
<tr class="memdesc:a50d51ee4b80ebc9a9934c5e0de1a34e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">This asserts if the condition doesn't meet.  <a href="#a50d51ee4b80ebc9a9934c5e0de1a34e0">More...</a><br/></td></tr>
<tr class="separator:a50d51ee4b80ebc9a9934c5e0de1a34e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a59c9381e19fe3c40ff0edb52b86cd0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#a0a59c9381e19fe3c40ff0edb52b86cd0">XAieLib_usleep</a> (u64 Usec)</td></tr>
<tr class="memdesc:a0a59c9381e19fe3c40ff0edb52b86cd0"><td class="mdescLeft">&#160;</td><td class="mdescRight">This provides to sleep in micro seconds.  <a href="#a0a59c9381e19fe3c40ff0edb52b86cd0">More...</a><br/></td></tr>
<tr class="separator:a0a59c9381e19fe3c40ff0edb52b86cd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5c7b431265e7098807ffbace03b3d94"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#ae5c7b431265e7098807ffbace03b3d94">XAieLib_LoadElf</a> (<a class="el" href="struct_x_aie_gbl___tile.html">XAieGbl_Tile</a> *TileInstPtr, u8 *ElfPtr, u8 LoadSym)</td></tr>
<tr class="memdesc:ae5c7b431265e7098807ffbace03b3d94"><td class="mdescLeft">&#160;</td><td class="mdescRight">This API loads the elf to corresponding tile.  <a href="#ae5c7b431265e7098807ffbace03b3d94">More...</a><br/></td></tr>
<tr class="separator:ae5c7b431265e7098807ffbace03b3d94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56f114fcd3ab521b71359664f1543c3f"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#a56f114fcd3ab521b71359664f1543c3f">XAieLib_LoadElfMem</a> (<a class="el" href="struct_x_aie_gbl___tile.html">XAieGbl_Tile</a> *TileInstPtr, u8 *ElfPtr, u8 LoadSym)</td></tr>
<tr class="memdesc:a56f114fcd3ab521b71359664f1543c3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This API loads the elf to corresponding tile.  <a href="#a56f114fcd3ab521b71359664f1543c3f">More...</a><br/></td></tr>
<tr class="separator:a56f114fcd3ab521b71359664f1543c3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afdc31b0bb30d8c0015f40e5ac047b8cd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#afdc31b0bb30d8c0015f40e5ac047b8cd">XAieLib_InitDev</a> (void)</td></tr>
<tr class="memdesc:afdc31b0bb30d8c0015f40e5ac047b8cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">This API initializes the platform specific device instance if needed.  <a href="#afdc31b0bb30d8c0015f40e5ac047b8cd">More...</a><br/></td></tr>
<tr class="separator:afdc31b0bb30d8c0015f40e5ac047b8cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef3dab7b9235d8b5fd82fb51d0955286"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#aef3dab7b9235d8b5fd82fb51d0955286">XAieLib_InitTile</a> (<a class="el" href="struct_x_aie_gbl___tile.html">XAieGbl_Tile</a> *TileInstPtr)</td></tr>
<tr class="memdesc:aef3dab7b9235d8b5fd82fb51d0955286"><td class="mdescLeft">&#160;</td><td class="mdescRight">This API initializes the platform specific tile instance if needed.  <a href="#aef3dab7b9235d8b5fd82fb51d0955286">More...</a><br/></td></tr>
<tr class="separator:aef3dab7b9235d8b5fd82fb51d0955286"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a050413bfaa37d3a5cb33e3d28f927b57"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#a050413bfaa37d3a5cb33e3d28f927b57">XAieLib_InterruptUnregisterIsr</a> (int Offset)</td></tr>
<tr class="memdesc:a050413bfaa37d3a5cb33e3d28f927b57"><td class="mdescLeft">&#160;</td><td class="mdescRight">This API unregisters the interrupt.  <a href="#a050413bfaa37d3a5cb33e3d28f927b57">More...</a><br/></td></tr>
<tr class="separator:a050413bfaa37d3a5cb33e3d28f927b57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7974c44601a26bad42ba24f065bd8a9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#aa7974c44601a26bad42ba24f065bd8a9">XAieLib_InterruptRegisterIsr</a> (int Offset, int(*Handler)(void *Data), void *Data)</td></tr>
<tr class="memdesc:aa7974c44601a26bad42ba24f065bd8a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">This API registers the handler for interrupt.  <a href="#aa7974c44601a26bad42ba24f065bd8a9">More...</a><br/></td></tr>
<tr class="separator:aa7974c44601a26bad42ba24f065bd8a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a582a288d8a8069159ceb9b04377c3b91"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#a582a288d8a8069159ceb9b04377c3b91">XAieLib_InterruptEnable</a> (void)</td></tr>
<tr class="memdesc:a582a288d8a8069159ceb9b04377c3b91"><td class="mdescLeft">&#160;</td><td class="mdescRight">This API enables AIE interrupt.  <a href="#a582a288d8a8069159ceb9b04377c3b91">More...</a><br/></td></tr>
<tr class="separator:a582a288d8a8069159ceb9b04377c3b91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a031ef63ed9e87c225efe4f5e3f561d16"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#a031ef63ed9e87c225efe4f5e3f561d16">XAieLib_InterruptDisable</a> (void)</td></tr>
<tr class="memdesc:a031ef63ed9e87c225efe4f5e3f561d16"><td class="mdescLeft">&#160;</td><td class="mdescRight">This API disables AIE interrupt.  <a href="#a031ef63ed9e87c225efe4f5e3f561d16">More...</a><br/></td></tr>
<tr class="separator:a031ef63ed9e87c225efe4f5e3f561d16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10fd65d3e1f99d55f83d6a9ef950e9ec"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#a10fd65d3e1f99d55f83d6a9ef950e9ec">XAieLib_IntPrint</a> (const char *Format,...)</td></tr>
<tr class="memdesc:a10fd65d3e1f99d55f83d6a9ef950e9ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">This API re-routes to platform print function.  <a href="#a10fd65d3e1f99d55f83d6a9ef950e9ec">More...</a><br/></td></tr>
<tr class="separator:a10fd65d3e1f99d55f83d6a9ef950e9ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a35393cbfca0ab5f4f85130c34d1887"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#a2a35393cbfca0ab5f4f85130c34d1887">XAieLib_log</a> (XAieLib_LogLevel Level, const char *Format,...)</td></tr>
<tr class="memdesc:a2a35393cbfca0ab5f4f85130c34d1887"><td class="mdescLeft">&#160;</td><td class="mdescRight">This API implements AIE logging.  <a href="#a2a35393cbfca0ab5f4f85130c34d1887">More...</a><br/></td></tr>
<tr class="separator:a2a35393cbfca0ab5f4f85130c34d1887"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa08402653ffa7c39b162a5e8c78b22a1"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#aa08402653ffa7c39b162a5e8c78b22a1">XAieLib_OpenLogFile</a> (const char *File)</td></tr>
<tr class="memdesc:aa08402653ffa7c39b162a5e8c78b22a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">This API set the log file.  <a href="#aa08402653ffa7c39b162a5e8c78b22a1">More...</a><br/></td></tr>
<tr class="separator:aa08402653ffa7c39b162a5e8c78b22a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91bef52d903e6cca1ac1bb2173ed0f34"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#a91bef52d903e6cca1ac1bb2173ed0f34">XAieLib_CloseLogFile</a> (void)</td></tr>
<tr class="memdesc:a91bef52d903e6cca1ac1bb2173ed0f34"><td class="mdescLeft">&#160;</td><td class="mdescRight">This API close the log file.  <a href="#a91bef52d903e6cca1ac1bb2173ed0f34">More...</a><br/></td></tr>
<tr class="separator:a91bef52d903e6cca1ac1bb2173ed0f34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a106094fbb36a4012f4ec0294b5a0ff76"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#a106094fbb36a4012f4ec0294b5a0ff76">XAieLib_MemFinish</a> (XAieLib_MemInst *XAieLib_MemInstPtr)</td></tr>
<tr class="memdesc:a106094fbb36a4012f4ec0294b5a0ff76"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the memory function to free the platform specific memory instance.  <a href="#a106094fbb36a4012f4ec0294b5a0ff76">More...</a><br/></td></tr>
<tr class="separator:a106094fbb36a4012f4ec0294b5a0ff76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af553972ed5fb0f253273bcb8af6b3bb0"><td class="memItemLeft" align="right" valign="top">XAieLib_MemInst *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#af553972ed5fb0f253273bcb8af6b3bb0">XAieLib_MemInit</a> (u8 idx)</td></tr>
<tr class="memdesc:af553972ed5fb0f253273bcb8af6b3bb0"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the memory function to initialize the platform specific memory instance.  <a href="#af553972ed5fb0f253273bcb8af6b3bb0">More...</a><br/></td></tr>
<tr class="separator:af553972ed5fb0f253273bcb8af6b3bb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26933d7f13e7c467e5a7ea4271a97355"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#a26933d7f13e7c467e5a7ea4271a97355">XAieLib_MemDetach</a> (XAieLib_MemInst *XAieLib_MemInstPtr)</td></tr>
<tr class="memdesc:a26933d7f13e7c467e5a7ea4271a97355"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the memory function to detach the memory from device.  <a href="#a26933d7f13e7c467e5a7ea4271a97355">More...</a><br/></td></tr>
<tr class="separator:a26933d7f13e7c467e5a7ea4271a97355"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e887225c745371597ae2515530f983d"><td class="memItemLeft" align="right" valign="top">XAieLib_MemInst *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#a8e887225c745371597ae2515530f983d">XAieLib_MemAttach</a> (u64 Vaddr, u64 Paddr, u64 Size, u64 MemHandle)</td></tr>
<tr class="memdesc:a8e887225c745371597ae2515530f983d"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the memory function to attach the external memory to device.  <a href="#a8e887225c745371597ae2515530f983d">More...</a><br/></td></tr>
<tr class="separator:a8e887225c745371597ae2515530f983d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3efba84a30d14c0462290f204478d0a4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#a3efba84a30d14c0462290f204478d0a4">XAieLib_MemFree</a> (XAieLib_MemInst *XAieLib_MemInstPtr)</td></tr>
<tr class="memdesc:a3efba84a30d14c0462290f204478d0a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the memory function to free the memory.  <a href="#a3efba84a30d14c0462290f204478d0a4">More...</a><br/></td></tr>
<tr class="separator:a3efba84a30d14c0462290f204478d0a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:addad616716fe670fe74875784a3a5619"><td class="memItemLeft" align="right" valign="top">XAieLib_MemInst *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#addad616716fe670fe74875784a3a5619">XAieLib_MemAllocate</a> (u64 Size, u32 Attr)</td></tr>
<tr class="memdesc:addad616716fe670fe74875784a3a5619"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the memory function to allocate a memory.  <a href="#addad616716fe670fe74875784a3a5619">More...</a><br/></td></tr>
<tr class="separator:addad616716fe670fe74875784a3a5619"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af536ba7a5fa1a2230ff31c2c53cc3fd8"><td class="memItemLeft" align="right" valign="top">u8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#af536ba7a5fa1a2230ff31c2c53cc3fd8">XAieLib_MemSyncForCPU</a> (XAieLib_MemInst *XAieLib_MemInstPtr)</td></tr>
<tr class="memdesc:af536ba7a5fa1a2230ff31c2c53cc3fd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the memory function to sync the memory for CPU.  <a href="#af536ba7a5fa1a2230ff31c2c53cc3fd8">More...</a><br/></td></tr>
<tr class="separator:af536ba7a5fa1a2230ff31c2c53cc3fd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafd523535beadf2efbcd76d4e23d749c"><td class="memItemLeft" align="right" valign="top">u8&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#aafd523535beadf2efbcd76d4e23d749c">XAieLib_MemSyncForDev</a> (XAieLib_MemInst *XAieLib_MemInstPtr)</td></tr>
<tr class="memdesc:aafd523535beadf2efbcd76d4e23d749c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the memory function to sync the memory for device.  <a href="#aafd523535beadf2efbcd76d4e23d749c">More...</a><br/></td></tr>
<tr class="separator:aafd523535beadf2efbcd76d4e23d749c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6bf65559dc840f9bc99c590c22ccc8a6"><td class="memItemLeft" align="right" valign="top">u64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#a6bf65559dc840f9bc99c590c22ccc8a6">XAieLib_MemGetSize</a> (XAieLib_MemInst *XAieLib_MemInstPtr)</td></tr>
<tr class="memdesc:a6bf65559dc840f9bc99c590c22ccc8a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the memory function to return the size of the memory instance.  <a href="#a6bf65559dc840f9bc99c590c22ccc8a6">More...</a><br/></td></tr>
<tr class="separator:a6bf65559dc840f9bc99c590c22ccc8a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a688990bada010988a122c7dddeff8b20"><td class="memItemLeft" align="right" valign="top">u64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#a688990bada010988a122c7dddeff8b20">XAieLib_MemGetVaddr</a> (XAieLib_MemInst *XAieLib_MemInstPtr)</td></tr>
<tr class="memdesc:a688990bada010988a122c7dddeff8b20"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the memory function to return the virtual address of the memory instance.  <a href="#a688990bada010988a122c7dddeff8b20">More...</a><br/></td></tr>
<tr class="separator:a688990bada010988a122c7dddeff8b20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea3f9953cbc8c187778c470ca6769fa5"><td class="memItemLeft" align="right" valign="top">u64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#aea3f9953cbc8c187778c470ca6769fa5">XAieLib_MemGetPaddr</a> (XAieLib_MemInst *XAieLib_MemInstPtr)</td></tr>
<tr class="memdesc:aea3f9953cbc8c187778c470ca6769fa5"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the memory function to return the virtual address of the memory instance.  <a href="#aea3f9953cbc8c187778c470ca6769fa5">More...</a><br/></td></tr>
<tr class="separator:aea3f9953cbc8c187778c470ca6769fa5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f1baf382db1969520abaf598229edac"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#a1f1baf382db1969520abaf598229edac">XAieLib_MemWrite32</a> (XAieLib_MemInst *XAieLib_MemInstPtr, u64 Addr, u32 Data)</td></tr>
<tr class="memdesc:a1f1baf382db1969520abaf598229edac"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the memory function to write to the physical address.  <a href="#a1f1baf382db1969520abaf598229edac">More...</a><br/></td></tr>
<tr class="separator:a1f1baf382db1969520abaf598229edac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac10c320fe83e569cf219db253ded58c9"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xaielib_8h.html#ac10c320fe83e569cf219db253ded58c9">XAieLib_MemRead32</a> (XAieLib_MemInst *XAieLib_MemInstPtr, u64 Addr)</td></tr>
<tr class="memdesc:ac10c320fe83e569cf219db253ded58c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the memory function to read from the physical address.  <a href="#ac10c320fe83e569cf219db253ded58c9">More...</a><br/></td></tr>
<tr class="separator:ac10c320fe83e569cf219db253ded58c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a059d049bbe1f789cb75612dbcba8ba57"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XAieLib_AssertNonvoid </td>
          <td>(</td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>Cond</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const u32&#160;</td>
          <td class="paramname"><em>line</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This asserts if the condition doesn't meet. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Cond,:</td><td>Condition to meet. Should be 0 or 1.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

</div>
</div>
<a class="anchor" id="a50d51ee4b80ebc9a9934c5e0de1a34e0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XAieLib_AssertVoid </td>
          <td>(</td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>Cond</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const u32&#160;</td>
          <td class="paramname"><em>line</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This asserts if the condition doesn't meet. </p>
<p>Can be used for void return function.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Cond,:</td><td>Condition to meet. Should be 0 or 1.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

</div>
</div>
<a class="anchor" id="a91bef52d903e6cca1ac1bb2173ed0f34"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XAieLib_CloseLogFile </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This API close the log file. </p>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

</div>
</div>
<a class="anchor" id="afdc31b0bb30d8c0015f40e5ac047b8cd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XAieLib_InitDev </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This API initializes the platform specific device instance if needed. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None.</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#a6c3a871a1b2b2362ba05ee722e16bfb9">XAieIO_Init()</a>.</p>

<p>Referenced by <a class="el" href="xaiegbl_8h.html#ad6422e72b033ca8d8456af7432d1fd11">XAieGbl_CfgInitialize()</a>.</p>

</div>
</div>
<a class="anchor" id="aef3dab7b9235d8b5fd82fb51d0955286"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XAieLib_InitTile </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_aie_gbl___tile.html">XAieGbl_Tile</a> *&#160;</td>
          <td class="paramname"><em>TileInstPtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This API initializes the platform specific tile instance if needed. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">TileInstPtr,:</td><td>Tile instance to be initialized</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XAIELIB_SUCCESS on success, otherwise XAIELIB_FAILURE.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>If there's no platform specific initialization, return XAIELIB_SUCCESS. </dd></dl>

<p>References <a class="el" href="xaietile__proc_8c.html#a78b537661cfec3982de4d1d0147e1227">XAieTileProc_Init()</a>.</p>

<p>Referenced by <a class="el" href="xaiegbl_8h.html#ad6422e72b033ca8d8456af7432d1fd11">XAieGbl_CfgInitialize()</a>.</p>

</div>
</div>
<a class="anchor" id="a031ef63ed9e87c225efe4f5e3f561d16"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XAieLib_InterruptDisable </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This API disables AIE interrupt. </p>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#ac43f086a7416a66c092a5243801208c6">XAieIO_IntrDisable()</a>.</p>

</div>
</div>
<a class="anchor" id="a582a288d8a8069159ceb9b04377c3b91"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XAieLib_InterruptEnable </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This API enables AIE interrupt. </p>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#a26b0c57e4a689b70ba70bb60d7214a2a">XAieIO_IntrEnable()</a>.</p>

</div>
</div>
<a class="anchor" id="aa7974c44601a26bad42ba24f065bd8a9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XAieLib_InterruptRegisterIsr </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int(*)(void *Data)&#160;</td>
          <td class="paramname"><em>Handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>Data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This API registers the handler for interrupt. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Offset,:</td><td>The value should one of 1 - 3. </td></tr>
    <tr><td class="paramname">Handler,:</td><td>the callback to be called upon interrupt. </td></tr>
    <tr><td class="paramname">Data,:</td><td>the data to be used with the handler.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XAIELIB_SUCCESS on success, otherwise XAIELIB_FAILURE.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#af889ecb39a27c4b30d1a69cc36ebbef8">XAieIO_IntrRegisterIsr()</a>.</p>

</div>
</div>
<a class="anchor" id="a050413bfaa37d3a5cb33e3d28f927b57"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XAieLib_InterruptUnregisterIsr </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Offset</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This API unregisters the interrupt. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Offest,:</td><td>Should be 1 - 3.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#a5a62fad8f5270c2e3a34f3f7f155370a">XAieIO_IntrUnregisterIsr()</a>.</p>

</div>
</div>
<a class="anchor" id="a10fd65d3e1f99d55f83d6a9ef950e9ec"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XAieLib_IntPrint </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>Format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This API re-routes to platform print function. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">format</td><td>strings</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>Referenced by <a class="el" href="xaielib_8h.html#aa08402653ffa7c39b162a5e8c78b22a1">XAieLib_OpenLogFile()</a>, and <a class="el" href="xaietile__error_8h.html#aa10e64442cc7d456e141abd8af5549a0">XAieTile_ErrorRegisterNotification()</a>.</p>

</div>
</div>
<a class="anchor" id="ae5c7b431265e7098807ffbace03b3d94"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XAieLib_LoadElf </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_aie_gbl___tile.html">XAieGbl_Tile</a> *&#160;</td>
          <td class="paramname"><em>TileInstPtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8 *&#160;</td>
          <td class="paramname"><em>ElfPtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>LoadSym</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This API loads the elf to corresponding tile. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">TileInstPtr,:</td><td>Tile instance for the elf to be loaded </td></tr>
    <tr><td class="paramname">ElfPtr,:</td><td>path to the elf file</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XAIELIB_SUCCESS on success, otherwise XAIELIB_FAILURE</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xaiesim__elfload_8c.html#a1291dc3091cf4d366aa7dc7e8eaf3063">XAieSim_LoadElf()</a>.</p>

</div>
</div>
<a class="anchor" id="a56f114fcd3ab521b71359664f1543c3f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XAieLib_LoadElfMem </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_aie_gbl___tile.html">XAieGbl_Tile</a> *&#160;</td>
          <td class="paramname"><em>TileInstPtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8 *&#160;</td>
          <td class="paramname"><em>ElfPtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>LoadSym</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This API loads the elf to corresponding tile. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">TileInstPtr,:</td><td>Tile instance for the elf to be loaded </td></tr>
    <tr><td class="paramname">ElfPtr,:</td><td>pointer to the elf in memory</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XAIELIB_SUCCESS on success, otherwise XAIELIB_FAILURE</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xaiesim__elfload_8c.html#a9bd06db89dacdd5e8e64c65f9ff338fb">XAieSim_LoadElfMem()</a>.</p>

</div>
</div>
<a class="anchor" id="a2a35393cbfca0ab5f4f85130c34d1887"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XAieLib_log </td>
          <td>(</td>
          <td class="paramtype">XAieLib_LogLevel&#160;</td>
          <td class="paramname"><em>Level</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>Format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This API implements AIE logging. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Level</td><td>- Log level </td></tr>
    <tr><td class="paramname">Format</td><td>- format string</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

</div>
</div>
<a class="anchor" id="ae24a68d49a75f90bb1d7420bf61cfd3d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XAieLib_MaskPoll </td>
          <td>(</td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>Addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Mask</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>TimeOutUs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the IO function to poll until the value at the address to be given masked value. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Addr,:</td><td>Address to write to. </td></tr>
    <tr><td class="paramname">Mask,:</td><td>Mask to be applied to read data. </td></tr>
    <tr><td class="paramname">Value,:</td><td>The expected value </td></tr>
    <tr><td class="paramname">TimeOutUs,:</td><td>Minimum timeout in usec.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XAIELIB_SUCCESS on success, otherwise XAIELIB_FAILURE</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xaielib_8c.html#a820be016043929d0c727ca1ebea73733">XAieLib_Read32()</a>, <a class="el" href="xaielib_8c.html#a0a59c9381e19fe3c40ff0edb52b86cd0">XAieLib_usleep()</a>, and <a class="el" href="xaiesim_8c.html#a80ae4affbfb62d6430687bfe8707c383">XAieSim_MaskPoll()</a>.</p>

</div>
</div>
<a class="anchor" id="aea8f2e8219b0446aed5136335954632f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XAieLib_MaskWrite32 </td>
          <td>(</td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>Addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Mask</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the memory IO function to write a masked 32bit data to the specified address. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Addr,:</td><td>Address to write to. </td></tr>
    <tr><td class="paramname">Mask,:</td><td>Mask to be applied to Data. </td></tr>
    <tr><td class="paramname">Data,:</td><td>32-bit data to be written.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#a30736619ef5f23d072d56dfcf261526f">XAieIO_Read32()</a>, <a class="el" href="xaieio_8c.html#a1b1c41443b990dee364d8e8cb641c8c3">XAieIO_Write32()</a>, and <a class="el" href="xaiesim_8c.html#a34b10b352d1c2bd8985a1436a8bc5e97">XAieSim_MaskWrite32()</a>.</p>

</div>
</div>
<a class="anchor" id="addad616716fe670fe74875784a3a5619"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">XAieLib_MemInst* XAieLib_MemAllocate </td>
          <td>(</td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>Size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Attr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the memory function to allocate a memory. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Size,:</td><td>Size of the memory </td></tr>
    <tr><td class="paramname">Attr,:</td><td>Any of XAIELIB_MEM_ATTR_*</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Pointer to the allocated IO memory instance.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#a4dd5b2c08face034b55c0debe6b4ea32">XAieIO_MemAllocate()</a>.</p>

</div>
</div>
<a class="anchor" id="a8e887225c745371597ae2515530f983d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">XAieLib_MemInst* XAieLib_MemAttach </td>
          <td>(</td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>Vaddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>Paddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>Size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>MemHandle</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the memory function to attach the external memory to device. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Vaddr,:</td><td>Vaddr of the memory </td></tr>
    <tr><td class="paramname">Paddr,:</td><td>Paddr of the memory </td></tr>
    <tr><td class="paramname">Size,:</td><td>Size of the memory </td></tr>
    <tr><td class="paramname">MemHandle,:</td><td>Handle of the memory. For linux, dmabuf fd</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Pointer to the attached memory instance.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Some arguments are not required for some backend platforms. This is determined by platform implementation. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#ac9f5b8cd80c8ecb1e712d918c4550f25">XAieIO_MemAttach()</a>.</p>

</div>
</div>
<a class="anchor" id="a26933d7f13e7c467e5a7ea4271a97355"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XAieLib_MemDetach </td>
          <td>(</td>
          <td class="paramtype">XAieLib_MemInst *&#160;</td>
          <td class="paramname"><em>XAieLib_MemInstPtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the memory function to detach the memory from device. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">XAieLib_MemInstPtr,:</td><td>Memory instance pointer.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#a85e6b21591a48394d76e35e98e285996">XAieIO_MemDetach()</a>.</p>

</div>
</div>
<a class="anchor" id="a106094fbb36a4012f4ec0294b5a0ff76"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XAieLib_MemFinish </td>
          <td>(</td>
          <td class="paramtype">XAieLib_MemInst *&#160;</td>
          <td class="paramname"><em>XAieLib_MemInstPtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the memory function to free the platform specific memory instance. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">XAieLib_MemInstPtr,:</td><td>Memory instance pointer.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>is freed and invalid after this function. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#a78f754b37422868c7b431234feb9cfa7">XAieIO_MemFinish()</a>.</p>

</div>
</div>
<a class="anchor" id="a3efba84a30d14c0462290f204478d0a4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XAieLib_MemFree </td>
          <td>(</td>
          <td class="paramtype">XAieLib_MemInst *&#160;</td>
          <td class="paramname"><em>XAieLib_MemInstPtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the memory function to free the memory. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">XAieLib_MemInstPtr,:</td><td>IO Memory instance pointer.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#a2f5b625f689831da6ad4d39f4d6a2929">XAieIO_MemFree()</a>.</p>

</div>
</div>
<a class="anchor" id="aea3f9953cbc8c187778c470ca6769fa5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u64 XAieLib_MemGetPaddr </td>
          <td>(</td>
          <td class="paramtype">XAieLib_MemInst *&#160;</td>
          <td class="paramname"><em>XAieLib_MemInstPtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the memory function to return the virtual address of the memory instance. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">XAieLib_MemInstPtr,:</td><td>Memory instance pointer.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Physical address of the memory instance. 0 if not supported.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#a2ee75f154d7eb5645f598f9061c10e4e">XAieIO_MemGetPaddr()</a>.</p>

</div>
</div>
<a class="anchor" id="a6bf65559dc840f9bc99c590c22ccc8a6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u64 XAieLib_MemGetSize </td>
          <td>(</td>
          <td class="paramtype">XAieLib_MemInst *&#160;</td>
          <td class="paramname"><em>XAieLib_MemInstPtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the memory function to return the size of the memory instance. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">XAieLib_MemInstPtr,:</td><td>Memory instance pointer.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>size of the memory instance. 0 if not supported.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#a84634833c90abfa18957153102eb0dd7">XAieIO_MemGetSize()</a>.</p>

</div>
</div>
<a class="anchor" id="a688990bada010988a122c7dddeff8b20"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u64 XAieLib_MemGetVaddr </td>
          <td>(</td>
          <td class="paramtype">XAieLib_MemInst *&#160;</td>
          <td class="paramname"><em>XAieLib_MemInstPtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the memory function to return the virtual address of the memory instance. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">XAieLib_MemInstPtr,:</td><td>Memory instance pointer.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Mapped virtual address of the memory instance. 0 if not supported.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#aa5834983efb50f1dc572d390dd21bf5c">XAieIO_MemGetVaddr()</a>.</p>

</div>
</div>
<a class="anchor" id="af553972ed5fb0f253273bcb8af6b3bb0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">XAieLib_MemInst* XAieLib_MemInit </td>
          <td>(</td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>idx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the memory function to initialize the platform specific memory instance. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">idx,:</td><td>Index of the memory to initialize.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Pointer to the initialized memory instance. Null or 0 if not supported.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#a99db5b40113892429c691e6f8b3d63cd">XAieIO_MemInit()</a>.</p>

</div>
</div>
<a class="anchor" id="ac10c320fe83e569cf219db253ded58c9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XAieLib_MemRead32 </td>
          <td>(</td>
          <td class="paramtype">XAieLib_MemInst *&#160;</td>
          <td class="paramname"><em>XAieLib_MemInstPtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>Addr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the memory function to read from the physical address. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">XAieLib_MemInstPtr,:</td><td>Memory instance pointer. </td></tr>
    <tr><td class="paramname">Addr,:</td><td>Absolute physical address to write.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A read 32 bit data. 0 if not supported.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#aa938f8abfd3a5858ab8135666c822014">XAieIO_MemRead32()</a>.</p>

</div>
</div>
<a class="anchor" id="af536ba7a5fa1a2230ff31c2c53cc3fd8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u8 XAieLib_MemSyncForCPU </td>
          <td>(</td>
          <td class="paramtype">XAieLib_MemInst *&#160;</td>
          <td class="paramname"><em>XAieLib_MemInstPtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the memory function to sync the memory for CPU. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">XAieLib_MemInstPtr,:</td><td>IO Memory instance pointer.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XAIELIB_SUCCESS if successful.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#a20ac4550a16f425265dadfc565bd35dd">XAieIO_MemSyncForCPU()</a>.</p>

</div>
</div>
<a class="anchor" id="aafd523535beadf2efbcd76d4e23d749c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u8 XAieLib_MemSyncForDev </td>
          <td>(</td>
          <td class="paramtype">XAieLib_MemInst *&#160;</td>
          <td class="paramname"><em>XAieLib_MemInstPtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the memory function to sync the memory for device. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">XAieLib_MemInstPtr,:</td><td>IO Memory instance pointer.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XAIELIB_SUCCESS if successful.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#ad521624f0abf3c946e739a3ec2101e19">XAieIO_MemSyncForDev()</a>.</p>

</div>
</div>
<a class="anchor" id="a1f1baf382db1969520abaf598229edac"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XAieLib_MemWrite32 </td>
          <td>(</td>
          <td class="paramtype">XAieLib_MemInst *&#160;</td>
          <td class="paramname"><em>XAieLib_MemInstPtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>Addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the memory function to write to the physical address. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">XAieLib_MemInstPtr,:</td><td>Memory instance pointer. </td></tr>
    <tr><td class="paramname">Addr,:</td><td>Absolute physical address to write. </td></tr>
    <tr><td class="paramname">Data,:</td><td>A 32 bit data to write.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#ab1cfe4478cca7866965b92841f652fdd">XAieIO_MemWrite32()</a>.</p>

</div>
</div>
<a class="anchor" id="ae034043fa2450cb0c690a41fe66f6ca9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XAieLib_NPIMaskPoll </td>
          <td>(</td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>Addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Mask</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>TimeOutUs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the NPI IO function to poll until the value at the address to be given masked value. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Addr,:</td><td>Address to write to. </td></tr>
    <tr><td class="paramname">Mask,:</td><td>Mask to be applied to read data. </td></tr>
    <tr><td class="paramname">Value,:</td><td>The expected value </td></tr>
    <tr><td class="paramname">TimeOutUs,:</td><td>Minimum timeout in usec.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XAIELIB_SUCCESS on success, otherwise XAIELIB_FAILURE</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This only work if NPI is accessble. </dd></dl>

<p>References <a class="el" href="xaielib_8c.html#a479677997332b0bffab48ac25ccf9159">XAieLib_NPIRead32()</a>, <a class="el" href="xaielib_8c.html#a0a59c9381e19fe3c40ff0edb52b86cd0">XAieLib_usleep()</a>, and <a class="el" href="xaiesim_8c.html#a1e7fd7b9d3ffb6a2c544d63678709dcb">XAieSim_NPIMaskPoll()</a>.</p>

</div>
</div>
<a class="anchor" id="a479677997332b0bffab48ac25ccf9159"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XAieLib_NPIRead32 </td>
          <td>(</td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>Addr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the NPI IO function to read 32bit data from the specified address. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Addr,:</td><td>Address to read from.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>32-bit read value.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This only work if NPI is accessble. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#a4e26a6d0299c388969e7d3fe52e83992">XAieIO_NPIRead32()</a>, and <a class="el" href="xaiesim_8c.html#a7e27e0af095370d54f3fcc96dba0af6c">XAieSim_NPIRead32()</a>.</p>

<p>Referenced by <a class="el" href="xaielib_8h.html#ae034043fa2450cb0c690a41fe66f6ca9">XAieLib_NPIMaskPoll()</a>.</p>

</div>
</div>
<a class="anchor" id="a2fd1a6b12446eb8fd0b3172ecc8d5a1f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XAieLib_NPIWrite32 </td>
          <td>(</td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>Addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the NPI IO function to write 32bit data to the specified address. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Addr,:</td><td>Address to write to. </td></tr>
    <tr><td class="paramname">Data,:</td><td>32-bit data to be written.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This only work if NPI is accessble. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#ae3bd2270b124dc0d01ddcdcb4dffe5de">XAieIO_NPIWrite32()</a>, and <a class="el" href="xaiesim_8c.html#ace1a443fec705f55a7ea09f3a244ba60">XAieSim_NPIWrite32()</a>.</p>

</div>
</div>
<a class="anchor" id="aa08402653ffa7c39b162a5e8c78b22a1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XAieLib_OpenLogFile </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>File</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This API set the log file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">File</td><td>- path of the file for logging.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XAIE_SUCCESS for success or XAIE_FAILURE for failure.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>If will be fail if the file is failed to open, or if there is already logging file opened. </dd></dl>

<p>References <a class="el" href="xaielib_8c.html#a10fd65d3e1f99d55f83d6a9ef950e9ec">XAieLib_IntPrint()</a>.</p>

</div>
</div>
<a class="anchor" id="a6c4151c74c8c8c287d2f2d7e8b2c3308"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XAieLib_Read128 </td>
          <td>(</td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>Addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32 *&#160;</td>
          <td class="paramname"><em>Data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the memory IO function to read 128b data from the specified address. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Addr,:</td><td>Address to read from. </td></tr>
    <tr><td class="paramname">Data,:</td><td>Pointer to the 128-bit buffer to store the read data.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#a30736619ef5f23d072d56dfcf261526f">XAieIO_Read32()</a>, and <a class="el" href="xaiesim_8c.html#a8fdd48e30504296b3dffd41997126667">XAieSim_Read32()</a>.</p>

</div>
</div>
<a class="anchor" id="a820be016043929d0c727ca1ebea73733"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XAieLib_Read32 </td>
          <td>(</td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>Addr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the memory IO function to read 32bit data from the specified address. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Addr,:</td><td>Address to read from.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>32-bit read value.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#a30736619ef5f23d072d56dfcf261526f">XAieIO_Read32()</a>, and <a class="el" href="xaiesim_8c.html#a8fdd48e30504296b3dffd41997126667">XAieSim_Read32()</a>.</p>

<p>Referenced by <a class="el" href="xaielib_8h.html#ae24a68d49a75f90bb1d7420bf61cfd3d">XAieLib_MaskPoll()</a>.</p>

</div>
</div>
<a class="anchor" id="a0a59c9381e19fe3c40ff0edb52b86cd0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XAieLib_usleep </td>
          <td>(</td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>Usec</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This provides to sleep in micro seconds. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Usec,:</td><td>Micro seconds to sleep</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 for success, and -1 for error..</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>
<p>FIXME: Platform implementation of usleep() API, returns void when it is expected to return SUCCESS/FAILURE code. Instead of returning a zero, this API must return SUCCESS/FAILURE code when usleep API is fixed.</p>

<p>Referenced by <a class="el" href="xaielib_8h.html#ae24a68d49a75f90bb1d7420bf61cfd3d">XAieLib_MaskPoll()</a>, and <a class="el" href="xaielib_8h.html#ae034043fa2450cb0c690a41fe66f6ca9">XAieLib_NPIMaskPoll()</a>.</p>

</div>
</div>
<a class="anchor" id="a9c957fb3e99baea854f371426fbab9d6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XAieLib_Write128 </td>
          <td>(</td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>Addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32 *&#160;</td>
          <td class="paramname"><em>Data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the memory IO function to write 128bit data to the specified address. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Addr,:</td><td>Address to write to. </td></tr>
    <tr><td class="paramname">Data,:</td><td>Pointer to the 128-bit data buffer.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#a8593b427629dccee614deaea0279617c">XAieIO_Write128()</a>, and <a class="el" href="xaiesim_8c.html#a9f4547debce2a6d307fc0b3e3c636b00">XAieSim_Write128()</a>.</p>

</div>
</div>
<a class="anchor" id="aeab7b9a775763561f4b5ffe900b448ce"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XAieLib_Write32 </td>
          <td>(</td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>Addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the memory IO function to write 32bit data to the specified address. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Addr,:</td><td>Address to write to. </td></tr>
    <tr><td class="paramname">Data,:</td><td>32-bit data to be written.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xaieio_8c.html#a1b1c41443b990dee364d8e8cb641c8c3">XAieIO_Write32()</a>, and <a class="el" href="xaiesim_8c.html#a2188251ed58e7c9364da7271695ed916">XAieSim_Write32()</a>.</p>

</div>
</div>
<a class="anchor" id="a0785309bf71fa965f2f98a8c0aeb9503"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XAieLib_WriteCmd </td>
          <td>(</td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>Command</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>ColId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>RowId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>CmdWd0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>CmdWd1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8 *&#160;</td>
          <td class="paramname"><em>CmdStr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the memory IO function to write 128bit data to the specified address. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Addr,:</td><td>Address to write to. </td></tr>
    <tr><td class="paramname">Data,:</td><td>Pointer to the 128-bit data buffer.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xaiesim_8c.html#aafa63ad23c4fabcd69550afdd5bc997d">XAieSim_WriteCmd()</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
	<p class="footer">&copy; Copyright 2015-2022 Xilinx, Inc. All Rights Reserved.</p>
	<p class="footer">&copy; Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved.</p>
</div>
</body>
</html>
